function obj1() { var p = 1 };
var obj2 = Object.create(obj1);
var obj3 = new obj1();

obj1.prototype.p = 2;// ① 直接通过原型对象的具体属性赋值，会在 之前new的实例对象 上改变值
obj1.prototype = { p: 3, k: 3 };// ② 通过重新以对象方式声明的原型对象，不会在 之前new的实例对象中 修改属性的值

console.log('obj2.prototype.p:' + obj2.prototype.p)//3 
console.log('obj2.prototype.k:' + obj2.prototype.k)//3

console.log('obj3.__proto__.p:' + obj3.__proto__.p)//2 ①
console.log('obj3.__proto__.k:' + obj3.__proto__.k)//undefined ① 
console.log('obj3.p:' + obj3.p)//2
console.log('obj3.k:' + obj3.k)//undefined

var obj4 = new obj1();

console.log('obj4.p:' + obj4.p)//3 ②
console.log('obj4.k:' + obj4.k)//3 ②



